#ifndef ENEMY_H
#define ENEMY_H

#pragma once

#include "Math\Vector3.h"

#define GET_SET_TYPE(TYPE_NAME, PARAMETER_NAME) \
	TYPE_NAME Get##PARAMETER_NAME##() const {return m_##PARAMETER_NAME##;} \
	void Set##PARAMETER_NAME##(TYPE_NAME PARAMETER_NAME) { m_##PARAMETER_NAME##=PARAMETER_NAME;}

#define GET_SET_TYPE_BY_REFERENCE(TYPE_NAME, PARAMETER_NAME) \
	const TYPE_NAME & Get##PARAMETER_NAME##() const {return m_##PARAMETER_NAME##;} \
	void Set##PARAMETER_NAME##(const TYPE_NAME PARAMETER_NAME) { m_##PARAMETER_NAME##=PARAMETER_NAME;}



class CEnemy
{
public:
	virtual void Update() = 0;
	virtual void Render() = 0;
	CEnemy();	
	virtual ~CEnemy();

	float getPosX();
	float getPosY();
	float getPosZ();

	void setPosX(float posX);
	void setPosY(float posY);
	void setPosZ(float posZ);

	Vect3f getVect3f();
	void setVect3f(Vect3f posXYZ);

protected:
	float m_PosX;
	float m_PosY;
	float m_PosZ;
	Vect3f m_vecXYZ;

};
#endif
